查看原文
其他

购物篮推荐场景太复杂?没有商品相关性标签?看作者运用对比学习统统解决

Yuqi Qin PaperWeekly 2022-07-04


©PaperWeekly 原创 · 作者 | Yuqi Qin

学校 | 北京邮电大学

研究方向 | 推荐系统


本文关注的是对购物篮去噪。目的是:从历史购物篮序列中挑选出真正可信赖的相关商品,来对每个购物篮实现商品级别的去噪,以提高购物篮推荐效果。



论文标题:

The World is Binary: Contrastive Learning for Denoising Next Basket Recommendation


论文作者:

Yuqi Qin, Pengfei Wang, Chenliang Li


收录情况:

SIGIR 2021 Full Paper


代码链接:

https://github.com/QYQ-bot/CLEA


背景

首先介绍一下这篇论文的 task,也就是下一个购物篮推荐,也就是根据用户的历史购物篮序列,来推荐用户在下一次可能购买的商品集合。

与传统的下一个商品推荐不同的是,在购物篮推荐中,由于用户行为的多样性与随机性,很多风格迥异的商品可能同时出现在同一个购物篮中,并非所有的购物篮都对预测用户下一次的行为有帮助,因此对购物篮进行去噪以及挑选出真正可信赖的相关商品就显得很有必要。

同时,由于一个购物篮中往往包含了超过一个的商品,对于目标购物篮中不同的目标商品,他们的相关商品也是不一样的,因此去噪过程应该是上下文感知的,这样历史商品相关性应该依赖于目标商品。(如图 1,目标购物篮 B=3,对其中的 grape 来说,pear 和 orange 才是相关商品;而对于 footbal 来说,footbal shoe 和 football shirt 才是相关商品
然而现有的一些方法主要关注于利用完整的历史序列进行序列建模,并且缺少了针对不同目标商品的上下文感知,这样将会导致引入很多的噪声,影响推荐性能。当然,为了减少噪声的影响,大家将注意力机制引入到序列建模中来,根据商品的相关性给不同商品分配不同的权重,但这种方式仍然不能显式的挖掘出可信的序列模式。


挑战

但是由于商品的相关性学习是没有直接 label 的,因此很难去训练出一个有效的去噪模型。同时用户行为的随机性与多样性加剧了学习的困难程度。


模型

基于上述分析的种种原因,作者提出了一个对比学习模型来自适应的挑选出与目标商品相关联的部分商品用于下一个购物篮推荐。
模型主要分为了 2 个部分:子购物篮序列生成器也就是去噪模块下文编码器

3.1 去噪模块

第一个去噪模块相当于一个二分类器 ,决定了历史序列中某商品 是否与目标商品 相关,主要用来显式的从每个购物篮中挑选出与目标商品相关的商品。

时,;当 时,
但由于 hard-coding 方式是不可微的,因此作者通过使用 gumbel-softmax 方式来解决这个问题,其中 是从 gumbel 分布中采样的随机数。
时, 趋向于 0 或 1;当 时, 趋向于 0.5。
对于购物篮 中的商品 ,若 ,则将商品 归为正子购物篮 中;反之,归为负子购物篮 中。经过此过程后,便可以将完整的购物篮序列拆分成两个互不相交的子购物篮序列。
3.2 上下文编码器
将第一阶段得到的子购物篮序列输入到第二阶段的基于 gru 的上下文编码器,将子购物篮序列编码为一个固定长度的向量,用来表示用户对目标商品的相关偏好亦或者是用户对目标商品的无关偏好。最后用该向量计算出一个 0-1 之间得分,用来表示用户下一次将会购买该目标商品的概率。
首先通过 pooling 的方式得到购物篮的表达:

将购物篮表达输入到 GRU 编码器:
同理。
最后输出的隐状态作为用户对目标商品 的偏好。并计算得分:
同理。

3.3 基于锚指导的对比学习

为了更好的对商品相关性进行建模,作者还提出了用于相关性建模的对比学习过程——将正的子购物篮序列算出的分数称为 , 将负的子购物篮序列算出的分数称为 , 完整的购物篮序列算出的得分称为 也就是锚点。
普通的交叉熵 Loss 为:

为了保证去噪模块得到有效学习,防止去噪模块的劣等学习被通过更新上下文编码器或偏好嵌入等其他参数来轻松修复,设计了基于锚指导的 loss 函数,让:

, 让,loss 函数为:
,   为 sigmoid。
并且为了减小模式的训练难度,作者还提出了一个两阶段的学习过程:第一个阶段称为预训练阶段,直接将完整的购物篮序列输入到上下文编码器模块,最后算出得分 ,用 也就是交叉熵目标函数训练让 越来越大,直至收敛,是为了获得一个预训练好的上下文编码器。在第二个阶段,也就是交替训练阶段。
我们首先使用上一阶段训练好的上下文编码器,通过上述提出的对比学习 loss 函数 来只更新去噪生成器直至收敛;然后再固定去噪生成器,使用同样的 loss 函数来只更新上下文编码器直至收敛。并将此交替训练过程过程一直循环。


实验效果
4.1 主实验


4.2 分组实验



4.3 loss函数对比

其中, 为普通的交叉熵 Loss,可以看出作者提出的基于锚指导的对比学习 loss 学习起来效果更佳。
4.4 gumbel-softmax的模拟退火参数影响
,其中 为全局的迭代次数,每迭代 500 次温度系数 便按照上述公式衰减一次。
可以看出,需要一个较大的初始温度系数 来保证在开始时有更大的搜索解空间,继续提高初始温度时,整体性能下降,其原因是较高的温度加剧了模型收敛的困难。对于衰减系数也有出相似的发现,较小的 会使 CLEA 难以汇聚,较高的 限制了在更广阔的采样空间中探索的能力。实验结果表明,初始 时比较好。
4.5 模型的3个变体结果对比
其中, 为删掉去噪模块的 模型变体; 为只根据 作为 attention 系数来得到相关的子购物篮的表示; 为不采用作者提出的两阶段的训练方式进行训练,直接采用联合训练。可以看出 效果最佳。
4.6 维度影响
可以看出,在小维情况下都达到了最佳性能,这也体现了去噪的作用。

4.7 case study



小结与展望

本文针对下一篮推荐场景中的去噪问题,提出了一种对比学习模型(CLEA)来自动提取与下一篮推荐目标相关的商品。具体地说,我们首先设计一个去噪模块来自适应地识别历史购物篮中的每个物品是否与目标物品相关。

通过将初始篮子分解为两个子篮子,再通过基于 gru 的上下文编码器得到它们的表示,该编码器表示与目标项目相关的兴趣或无关的噪声。然后,一个新的锚指导的对比学习过程被设计,在不需要任何商品级的关联监督的同时来指导这个关联学习过程。

这是为下一个篮子推荐以端到端方式对篮子执行商品级去噪的第一个工作。作为未来的工作,作者计划利用弱监督信号更好地理解项目之间的相互作用,以进一步改进。

更多阅读




#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存